#ifndef __BLEND__
#define __BLEND__

// 
// struct BITMAPEX;
// typedef BITMAPEX* PBITMAPEX;
// typedef const SIZE *LPCSIZE;
#include "xGraphic_Type.h"

namespace xRender
{
    //C
    BOOL BlendSrc8(PBITMAP lpbDst, PBITMAPEX lpbSrc);
    BOOL BlendSrc24(PBITMAP lpbDst, PBITMAPEX lpbSrc);
    BOOL BlendSrc32(PBITMAP lpbDst, PBITMAPEX lpbSrc);
    BOOL BlendSrcOver8(PBITMAP lpbDst, PBITMAPEX lpbSrc);
    BOOL BlendSrcOver24(PBITMAP lpbDst, PBITMAPEX lpbSrc);
    BOOL BlendSrcOver32(PBITMAP lpbDst, PBITMAPEX lpbSrc);
    BOOL BlendDstOver8(PBITMAP lpbDst, PBITMAPEX lpbSrc);
    BOOL BlendDstOver24(PBITMAP lpbDst, PBITMAPEX lpbSrc);
    BOOL BlendDstOver32(PBITMAP lpbDst, PBITMAPEX lpbSrc);
    BOOL BlendMul8(PBITMAP lpbDst, PBITMAPEX lpbSrc);
    BOOL BlendMul24(PBITMAP lpbDst, PBITMAPEX lpbSrc);
    BOOL BlendMul32(PBITMAP lpbDst, PBITMAPEX lpbSrc);

    BOOL BlendSrc8Stretch(PBITMAP lpbDst, PBITMAPEX lpbSrc);
    BOOL BlendSrc24Stretch(PBITMAP lpbDst, PBITMAPEX lpbSrc);
    BOOL BlendSrc32Stretch(PBITMAP lpbDst, PBITMAPEX lpbSrc);
    BOOL BlendSrcOver8Stretch(PBITMAP lpbDst, PBITMAPEX lpbSrc);
    BOOL BlendSrcOver24Stretch(PBITMAP lpbDst, PBITMAPEX lpbSrc);
    BOOL BlendSrcOver32Stretch(PBITMAP lpbDst, PBITMAPEX lpbSrc);
    BOOL BlendDstOver8Stretch(PBITMAP lpbDst, PBITMAPEX lpbSrc);
    BOOL BlendDstOver24Stretch(PBITMAP lpbDst, PBITMAPEX lpbSrc);
    BOOL BlendDstOver32Stretch(PBITMAP lpbDst, PBITMAPEX lpbSrc);
    BOOL BlendMul8Stretch(PBITMAP lpbDst, PBITMAPEX lpbSrc);
    BOOL BlendMul24Stretch(PBITMAP lpbDst, PBITMAPEX lpbSrc);
    BOOL BlendMul32Stretch(PBITMAP lpbDst, PBITMAPEX lpbSrc);

    BOOL BlendSrc8Stretch(PBITMAP lpbDst, PBITMAPEX lpbSrc, LPCSIZE lpszDst, LPCRECT lprcClipped);
    BOOL BlendSrc24Stretch(PBITMAP lpbDst, PBITMAPEX lpbSrc, LPCSIZE lpszDst, LPCRECT lprcClipped);
    BOOL BlendSrc32Stretch(PBITMAP lpbDst, PBITMAPEX lpbSrc, LPCSIZE lpszDst, LPCRECT lprcClipped);
    BOOL BlendSrcOver8Stretch(PBITMAP lpbDst, PBITMAPEX lpbSrc, LPCSIZE lpszDst, LPCRECT lprcClipped);
    BOOL BlendSrcOver24Stretch(PBITMAP lpbDst, PBITMAPEX lpbSrc, LPCSIZE lpszDst, LPCRECT lprcClipped);
    BOOL BlendSrcOver32Stretch(PBITMAP lpbDst, PBITMAPEX lpbSrc, LPCSIZE lpszDst, LPCRECT lprcClipped);
    BOOL BlendDstOver8Stretch(PBITMAP lpbDst, PBITMAPEX lpbSrc, LPCSIZE lpszDst, LPCRECT lprcClipped);
    BOOL BlendDstOver24Stretch(PBITMAP lpbDst, PBITMAPEX lpbSrc, LPCSIZE lpszDst, LPCRECT lprcClipped);
    BOOL BlendDstOver32Stretch(PBITMAP lpbDst, PBITMAPEX lpbSrc, LPCSIZE lpszDst, LPCRECT lprcClipped);
    BOOL BlendMul8Stretch(PBITMAP lpbDst, PBITMAPEX lpbSrc, LPCSIZE lpszDst, LPCRECT lprcClipped);
    BOOL BlendMul24Stretch(PBITMAP lpbDst, PBITMAPEX lpbSrc, LPCSIZE lpszDst, LPCRECT lprcClipped);
    BOOL BlendMul32Stretch(PBITMAP lpbDst, PBITMAPEX lpbSrc, LPCSIZE lpszDst, LPCRECT lprcClipped);

    BOOL BlendSrc8(PBITMAP lpbDst, PBITMAPEX lpbSrc, xARGB xKey);
    BOOL BlendSrc24(PBITMAP lpbDst, PBITMAPEX lpbSrc, xARGB xKey);
    BOOL BlendSrc32(PBITMAP lpbDst, PBITMAPEX lpbSrc, xARGB xKey);

    BOOL BlendSrc8Stretch(PBITMAP lpbDst, PBITMAPEX lpbSrc, xARGB xKey);
    BOOL BlendSrc24Stretch(PBITMAP lpbDst, PBITMAPEX lpbSrc, xARGB xKey);
    BOOL BlendSrc32Stretch(PBITMAP lpbDst, PBITMAPEX lpbSrc, xARGB xKey);

    BOOL BlendSrc8Stretch(PBITMAP lpbDst, PBITMAPEX lpbSrc, xARGB xKey, LPCSIZE lpszDst, LPCRECT lprcClipped);
    BOOL BlendSrc24Stretch(PBITMAP lpbDst, PBITMAPEX lpbSrc, xARGB xKey, LPCSIZE lpszDst, LPCRECT lprcClipped);
    BOOL BlendSrc32Stretch(PBITMAP lpbDst, PBITMAPEX lpbSrc, xARGB xKey, LPCSIZE lpszDst, LPCRECT lprcClipped);

    BOOL BlendSrcOver8(PBITMAP lpbDst, PBITMAPEX lpbSrc, BYTE alpha);
    BOOL BlendSrcOver24(PBITMAP lpbDst, PBITMAPEX lpbSrc, BYTE alpha);
    BOOL BlendSrcOver32(PBITMAP lpbDst, PBITMAPEX lpbSrc, BYTE alpha);

    BOOL BlendSrcOver8Stretch(PBITMAP lpbDst, PBITMAPEX lpbSrc, BYTE alpha);
    BOOL BlendSrcOver24Stretch(PBITMAP lpbDst, PBITMAPEX lpbSrc, BYTE alpha);
    BOOL BlendSrcOver32Stretch(PBITMAP lpbDst, PBITMAPEX lpbSrc, BYTE alpha);

    BOOL BlendSrcOver8Stretch(PBITMAP lpbDst, PBITMAPEX lpbSrc, BYTE alpha, LPCSIZE lpszDst, LPCRECT lprcClipped);
    BOOL BlendSrcOver24Stretch(PBITMAP lpbDst, PBITMAPEX lpbSrc, BYTE alpha, LPCSIZE lpszDst, LPCRECT lprcClipped);
    BOOL BlendSrcOver32Stretch(PBITMAP lpbDst, PBITMAPEX lpbSrc, BYTE alpha, LPCSIZE lpszDst, LPCRECT lprcClipped);

    BOOL BlendSrc8StretchBicubic(PBITMAP lpbDst, PBITMAPEX lpbSrc);
    BOOL BlendSrc24StretchBicubic(PBITMAP lpbDst, PBITMAPEX lpbSrc);
    BOOL BlendSrc32StretchBicubic(PBITMAP lpbDst, PBITMAPEX lpbSrc);
    BOOL BlendSrcOver8StretchBicubic(PBITMAP lpbDst, PBITMAPEX lpbSrc);
    BOOL BlendSrcOver24StretchBicubic(PBITMAP lpbDst, PBITMAPEX lpbSrc);
    BOOL BlendSrcOver32StretchBicubic(PBITMAP lpbDst, PBITMAPEX lpbSrc);

    BOOL BlendSrcOver8StretchBicubic(PBITMAP lpbDst, PBITMAPEX lpbSrc, BYTE alpha);
    BOOL BlendSrcOver24StretchBicubic(PBITMAP lpbDst, PBITMAPEX lpbSrc, BYTE alpha);
    BOOL BlendSrcOver32StretchBicubic(PBITMAP lpbDst, PBITMAPEX lpbSrc, BYTE alpha);

    BOOL BlendSrc8StretchBicubic(PBITMAP lpbDst, PBITMAPEX lpbSrc, LPCSIZE lpszDst, LPCRECT lprcClipped);
    BOOL BlendSrc24StretchBicubic(PBITMAP lpbDst, PBITMAPEX lpbSrc, LPCSIZE lpszDst, LPCRECT lprcClipped);
    BOOL BlendSrc32StretchBicubic(PBITMAP lpbDst, PBITMAPEX lpbSrc, LPCSIZE lpszDst, LPCRECT lprcClipped);
    BOOL BlendSrcOver8StretchBicubic(PBITMAP lpbDst, PBITMAPEX lpbSrc, LPCSIZE lpszDst, LPCRECT lprcClipped);
    BOOL BlendSrcOver24StretchBicubic(PBITMAP lpbDst, PBITMAPEX lpbSrc, LPCSIZE lpszDst, LPCRECT lprcClipped);
    BOOL BlendSrcOver32StretchBicubic(PBITMAP lpbDst, PBITMAPEX lpbSrc, LPCSIZE lpszDst, LPCRECT lprcClipped);

    BOOL BlendSrcOver8StretchBicubic(PBITMAP lpbDst, PBITMAPEX lpbSrc, BYTE alpha, LPCSIZE lpszDst, LPCRECT lprcClipped);
    BOOL BlendSrcOver24StretchBicubic(PBITMAP lpbDst, PBITMAPEX lpbSrc, BYTE alpha, LPCSIZE lpszDst, LPCRECT lprcClipped);
    BOOL BlendSrcOver32StretchBicubic(PBITMAP lpbDst, PBITMAPEX lpbSrc, BYTE alpha, LPCSIZE lpszDst, LPCRECT lprcClipped);

    BOOL BlendSrc8StretchBilinear(PBITMAP lpbDst, PBITMAPEX lpbSrc);
    BOOL BlendSrc24StretchBilinear(PBITMAP lpbDst, PBITMAPEX lpbSrc);
    BOOL BlendSrc32StretchBilinear(PBITMAP lpbDst, PBITMAPEX lpbSrc);
    BOOL BlendSrcOver8StretchBilinear(PBITMAP lpbDst, PBITMAPEX lpbSrc);
    BOOL BlendSrcOver24StretchBilinear(PBITMAP lpbDst, PBITMAPEX lpbSrc);
    BOOL BlendSrcOver32StretchBilinear(PBITMAP lpbDst, PBITMAPEX lpbSrc);

    BOOL BlendSrcOver8StretchBilinear(PBITMAP lpbDst, PBITMAPEX lpbSrc, BYTE alpha);
    BOOL BlendSrcOver24StretchBilinear(PBITMAP lpbDst, PBITMAPEX lpbSrc, BYTE alpha);
    BOOL BlendSrcOver32StretchBilinear(PBITMAP lpbDst, PBITMAPEX lpbSrc, BYTE alpha);

    BOOL BlendSrc8StretchBilinear(PBITMAP lpbDst, PBITMAPEX lpbSrc, LPCSIZE lpszDst, LPCRECT lprcClipped);
    BOOL BlendSrc24StretchBilinear(PBITMAP lpbDst, PBITMAPEX lpbSrc, LPCSIZE lpszDst, LPCRECT lprcClipped);
    BOOL BlendSrc32StretchBilinear(PBITMAP lpbDst, PBITMAPEX lpbSrc, LPCSIZE lpszDst, LPCRECT lprcClipped);
    BOOL BlendSrcOver8StretchBilinear(PBITMAP lpbDst, PBITMAPEX lpbSrc, LPCSIZE lpszDst, LPCRECT lprcClipped);
    BOOL BlendSrcOver24StretchBilinear(PBITMAP lpbDst, PBITMAPEX lpbSrc, LPCSIZE lpszDst, LPCRECT lprcClipped);
    BOOL BlendSrcOver32StretchBilinear(PBITMAP lpbDst, PBITMAPEX lpbSrc, LPCSIZE lpszDst, LPCRECT lprcClipped);

    BOOL BlendSrcOver8StretchBilinear(PBITMAP lpbDst, PBITMAPEX lpbSrc, BYTE alpha, LPCSIZE lpszDst, LPCRECT lprcClipped);
    BOOL BlendSrcOver24StretchBilinear(PBITMAP lpbDst, PBITMAPEX lpbSrc, BYTE alpha, LPCSIZE lpszDst, LPCRECT lprcClipped);
    BOOL BlendSrcOver32StretchBilinear(PBITMAP lpbDst, PBITMAPEX lpbSrc, BYTE alpha, LPCSIZE lpszDst, LPCRECT lprcClipped);

    BOOL BlendSrc8StretchAreaAveraging(PBITMAP lpbDst, PBITMAPEX lpbSrc);
    BOOL BlendSrc24StretchAreaAveraging(PBITMAP lpbDst, PBITMAPEX lpbSrc);
    BOOL BlendSrc32StretchAreaAveraging(PBITMAP lpbDst, PBITMAPEX lpbSrc);

    BOOL BlendSrc8StretchAreaAveraging(PBITMAP lpbDst, PBITMAPEX lpbSrc, LPCSIZE lpszDst, LPCRECT lprcClipped);
    BOOL BlendSrc24StretchAreaAveraging(PBITMAP lpbDst, PBITMAPEX lpbSrc, LPCSIZE lpszDst, LPCRECT lprcClipped);
    BOOL BlendSrc32StretchAreaAveraging(PBITMAP lpbDst, PBITMAPEX lpbSrc, LPCSIZE lpszDst, LPCRECT lprcClipped);

    BOOL BlendSrcColor32(PBITMAP lpbDst, xARGB x);
    BOOL BlendSrcOverColor32(PBITMAP lpbDst, xARGB x);
    BOOL BlendDstOverColor32(PBITMAP lpbDst, xARGB x);
    BOOL BlendMulColor32(PBITMAP lpbDst, xARGB x);
    BOOL BlendOrColor32(PBITMAP lpbDst, xARGB x);
    BOOL BlendGrayColor32(PBITMAP lpbDst, xARGB x);

    //MMX
    BOOL BlendSrc8MMX(PBITMAP lpbDst, PBITMAPEX lpbSrc);
    BOOL BlendSrc24MMX(PBITMAP lpbDst, PBITMAPEX lpbSrc);
    BOOL BlendSrc32MMX(PBITMAP lpbDst, PBITMAPEX lpbSrc);
    BOOL BlendSrcOver8MMX(PBITMAP lpbDst, PBITMAPEX lpbSrc);
    BOOL BlendSrcOver24MMX(PBITMAP lpbDst, PBITMAPEX lpbSrc);
    BOOL BlendSrcOver32MMX(PBITMAP lpbDst, PBITMAPEX lpbSrc);
    BOOL BlendDstOver8MMX(PBITMAP lpbDst, PBITMAPEX lpbSrc);
    BOOL BlendDstOver24MMX(PBITMAP lpbDst, PBITMAPEX lpbSrc);
    BOOL BlendDstOver32MMX(PBITMAP lpbDst, PBITMAPEX lpbSrc);
    BOOL BlendMul8MMX(PBITMAP lpbDst, PBITMAPEX lpbSrc);
    BOOL BlendMul24MMX(PBITMAP lpbDst, PBITMAPEX lpbSrc);
    BOOL BlendMul32MMX(PBITMAP lpbDst, PBITMAPEX lpbSrc);

    BOOL BlendSrc8StretchMMX(PBITMAP lpbDst, PBITMAPEX lpbSrc);
    BOOL BlendSrc24StretchMMX(PBITMAP lpbDst, PBITMAPEX lpbSrc);
    BOOL BlendSrc32StretchMMX(PBITMAP lpbDst, PBITMAPEX lpbSrc);
    BOOL BlendSrcOver8StretchMMX(PBITMAP lpbDst, PBITMAPEX lpbSrc);
    BOOL BlendSrcOver24StretchMMX(PBITMAP lpbDst, PBITMAPEX lpbSrc);
    BOOL BlendSrcOver32StretchMMX(PBITMAP lpbDst, PBITMAPEX lpbSrc);
    BOOL BlendDstOver8StretchMMX(PBITMAP lpbDst, PBITMAPEX lpbSrc);
    BOOL BlendDstOver24StretchMMX(PBITMAP lpbDst, PBITMAPEX lpbSrc);
    BOOL BlendDstOver32StretchMMX(PBITMAP lpbDst, PBITMAPEX lpbSrc);
    BOOL BlendMul8StretchMMX(PBITMAP lpbDst, PBITMAPEX lpbSrc);
    BOOL BlendMul24StretchMMX(PBITMAP lpbDst, PBITMAPEX lpbSrc);
    BOOL BlendMul32StretchMMX(PBITMAP lpbDst, PBITMAPEX lpbSrc);

    BOOL BlendSrc8StretchMMX(PBITMAP lpbDst, PBITMAPEX lpbSrc, LPCSIZE lpszDst, LPCRECT lprcClipped);
    BOOL BlendSrc24StretchMMX(PBITMAP lpbDst, PBITMAPEX lpbSrc, LPCSIZE lpszDst, LPCRECT lprcClipped);
    BOOL BlendSrc32StretchMMX(PBITMAP lpbDst, PBITMAPEX lpbSrc, LPCSIZE lpszDst, LPCRECT lprcClipped);
    BOOL BlendSrcOver8StretchMMX(PBITMAP lpbDst, PBITMAPEX lpbSrc, LPCSIZE lpszDst, LPCRECT lprcClipped);
    BOOL BlendSrcOver24StretchMMX(PBITMAP lpbDst, PBITMAPEX lpbSrc, LPCSIZE lpszDst, LPCRECT lprcClipped);
    BOOL BlendSrcOver32StretchMMX(PBITMAP lpbDst, PBITMAPEX lpbSrc, LPCSIZE lpszDst, LPCRECT lprcClipped);
    BOOL BlendDstOver8StretchMMX(PBITMAP lpbDst, PBITMAPEX lpbSrc, LPCSIZE lpszDst, LPCRECT lprcClipped);
    BOOL BlendDstOver24StretchMMX(PBITMAP lpbDst, PBITMAPEX lpbSrc, LPCSIZE lpszDst, LPCRECT lprcClipped);
    BOOL BlendDstOver32StretchMMX(PBITMAP lpbDst, PBITMAPEX lpbSrc, LPCSIZE lpszDst, LPCRECT lprcClipped);
    BOOL BlendMul8StretchMMX(PBITMAP lpbDst, PBITMAPEX lpbSrc, LPCSIZE lpszDst, LPCRECT lprcClipped);
    BOOL BlendMul24StretchMMX(PBITMAP lpbDst, PBITMAPEX lpbSrc, LPCSIZE lpszDst, LPCRECT lprcClipped);
    BOOL BlendMul32StretchMMX(PBITMAP lpbDst, PBITMAPEX lpbSrc, LPCSIZE lpszDst, LPCRECT lprcClipped);

    BOOL BlendSrc8MMX(PBITMAP lpbDst, PBITMAPEX lpbSrc, xARGB xKey);
    BOOL BlendSrc24MMX(PBITMAP lpbDst, PBITMAPEX lpbSrc, xARGB xKey);
    BOOL BlendSrc32MMX(PBITMAP lpbDst, PBITMAPEX lpbSrc, xARGB xKey);

    BOOL BlendSrc8StretchMMX(PBITMAP lpbDst, PBITMAPEX lpbSrc, xARGB xKey);
    BOOL BlendSrc24StretchMMX(PBITMAP lpbDst, PBITMAPEX lpbSrc, xARGB xKey);
    BOOL BlendSrc32StretchMMX(PBITMAP lpbDst, PBITMAPEX lpbSrc, xARGB xKey);

    BOOL BlendSrc8StretchMMX(PBITMAP lpbDst, PBITMAPEX lpbSrc, xARGB xKey, LPCSIZE lpszDst, LPCRECT lprcClipped);
    BOOL BlendSrc24StretchMMX(PBITMAP lpbDst, PBITMAPEX lpbSrc, xARGB xKey, LPCSIZE lpszDst, LPCRECT lprcClipped);
    BOOL BlendSrc32StretchMMX(PBITMAP lpbDst, PBITMAPEX lpbSrc, xARGB xKey, LPCSIZE lpszDst, LPCRECT lprcClipped);

    BOOL BlendSrcOver8MMX(PBITMAP lpbDst, PBITMAPEX lpbSrc, BYTE alpha);
    BOOL BlendSrcOver24MMX(PBITMAP lpbDst, PBITMAPEX lpbSrc, BYTE alpha);
    BOOL BlendSrcOver32MMX(PBITMAP lpbDst, PBITMAPEX lpbSrc, BYTE alpha);

    BOOL BlendSrcOver8StretchMMX(PBITMAP lpbDst, PBITMAPEX lpbSrc, BYTE alpha);
    BOOL BlendSrcOver24StretchMMX(PBITMAP lpbDst, PBITMAPEX lpbSrc, BYTE alpha);
    BOOL BlendSrcOver32StretchMMX(PBITMAP lpbDst, PBITMAPEX lpbSrc, BYTE alpha);

    BOOL BlendSrcOver8StretchMMX(PBITMAP lpbDst, PBITMAPEX lpbSrc, BYTE alpha, LPCSIZE lpszDst, LPCRECT lprcClipped);
    BOOL BlendSrcOver24StretchMMX(PBITMAP lpbDst, PBITMAPEX lpbSrc, BYTE alpha, LPCSIZE lpszDst, LPCRECT lprcClipped);
    BOOL BlendSrcOver32StretchMMX(PBITMAP lpbDst, PBITMAPEX lpbSrc, BYTE alpha, LPCSIZE lpszDst, LPCRECT lprcClipped);

    BOOL BlendSrc8StretchBicubicMMX(PBITMAP lpbDst, PBITMAPEX lpbSrc);
    BOOL BlendSrc24StretchBicubicMMX(PBITMAP lpbDst, PBITMAPEX lpbSrc);
    BOOL BlendSrc32StretchBicubicMMX(PBITMAP lpbDst, PBITMAPEX lpbSrc);
    BOOL BlendSrcOver8StretchBicubicMMX(PBITMAP lpbDst, PBITMAPEX lpbSrc);
    BOOL BlendSrcOver24StretchBicubicMMX(PBITMAP lpbDst, PBITMAPEX lpbSrc);
    BOOL BlendSrcOver32StretchBicubicMMX(PBITMAP lpbDst, PBITMAPEX lpbSrc);

    BOOL BlendSrcOver8StretchBicubicMMX(PBITMAP lpbDst, PBITMAPEX lpbSrc, BYTE alpha);
    BOOL BlendSrcOver24StretchBicubicMMX(PBITMAP lpbDst, PBITMAPEX lpbSrc, BYTE alpha);
    BOOL BlendSrcOver32StretchBicubicMMX(PBITMAP lpbDst, PBITMAPEX lpbSrc, BYTE alpha);

    BOOL BlendSrc8StretchBicubicMMX(PBITMAP lpbDst, PBITMAPEX lpbSrc, LPCSIZE lpszDst, LPCRECT lprcClipped);
    BOOL BlendSrc24StretchBicubicMMX(PBITMAP lpbDst, PBITMAPEX lpbSrc, LPCSIZE lpszDst, LPCRECT lprcClipped);
    BOOL BlendSrc32StretchBicubicMMX(PBITMAP lpbDst, PBITMAPEX lpbSrc, LPCSIZE lpszDst, LPCRECT lprcClipped);
    BOOL BlendSrcOver8StretchBicubicMMX(PBITMAP lpbDst, PBITMAPEX lpbSrc, LPCSIZE lpszDst, LPCRECT lprcClipped);
    BOOL BlendSrcOver24StretchBicubicMMX(PBITMAP lpbDst, PBITMAPEX lpbSrc, LPCSIZE lpszDst, LPCRECT lprcClipped);
    BOOL BlendSrcOver32StretchBicubicMMX(PBITMAP lpbDst, PBITMAPEX lpbSrc, LPCSIZE lpszDst, LPCRECT lprcClipped);

    BOOL BlendSrcOver8StretchBicubicMMX(PBITMAP lpbDst, PBITMAPEX lpbSrc, BYTE alpha, LPCSIZE lpszDst, LPCRECT lprcClipped);
    BOOL BlendSrcOver24StretchBicubicMMX(PBITMAP lpbDst, PBITMAPEX lpbSrc, BYTE alpha, LPCSIZE lpszDst, LPCRECT lprcClipped);
    BOOL BlendSrcOver32StretchBicubicMMX(PBITMAP lpbDst, PBITMAPEX lpbSrc, BYTE alpha, LPCSIZE lpszDst, LPCRECT lprcClipped);

    BOOL BlendSrc8StretchBilinearMMX(PBITMAP lpbDst, PBITMAPEX lpbSrc);
    BOOL BlendSrc24StretchBilinearMMX(PBITMAP lpbDst, PBITMAPEX lpbSrc);
    BOOL BlendSrc32StretchBilinearMMX(PBITMAP lpbDst, PBITMAPEX lpbSrc);
    BOOL BlendSrcOver8StretchBilinearMMX(PBITMAP lpbDst, PBITMAPEX lpbSrc);
    BOOL BlendSrcOver24StretchBilinearMMX(PBITMAP lpbDst, PBITMAPEX lpbSrc);
    BOOL BlendSrcOver32StretchBilinearMMX(PBITMAP lpbDst, PBITMAPEX lpbSrc);

    BOOL BlendSrcOver8StretchBilinearMMX(PBITMAP lpbDst, PBITMAPEX lpbSrc, BYTE alpha);
    BOOL BlendSrcOver24StretchBilinearMMX(PBITMAP lpbDst, PBITMAPEX lpbSrc, BYTE alpha);
    BOOL BlendSrcOver32StretchBilinearMMX(PBITMAP lpbDst, PBITMAPEX lpbSrc, BYTE alpha);

    BOOL BlendSrc8StretchBilinearMMX(PBITMAP lpbDst, PBITMAPEX lpbSrc, LPCSIZE lpszDst, LPCRECT lprcClipped);
    BOOL BlendSrc24StretchBilinearMMX(PBITMAP lpbDst, PBITMAPEX lpbSrc, LPCSIZE lpszDst, LPCRECT lprcClipped);
    BOOL BlendSrc32StretchBilinearMMX(PBITMAP lpbDst, PBITMAPEX lpbSrc, LPCSIZE lpszDst, LPCRECT lprcClipped);
    BOOL BlendSrcOver8StretchBilinearMMX(PBITMAP lpbDst, PBITMAPEX lpbSrc, LPCSIZE lpszDst, LPCRECT lprcClipped);
    BOOL BlendSrcOver24StretchBilinearMMX(PBITMAP lpbDst, PBITMAPEX lpbSrc, LPCSIZE lpszDst, LPCRECT lprcClipped);
    BOOL BlendSrcOver32StretchBilinearMMX(PBITMAP lpbDst, PBITMAPEX lpbSrc, LPCSIZE lpszDst, LPCRECT lprcClipped);

    BOOL BlendSrcOver8StretchBilinearMMX(PBITMAP lpbDst, PBITMAPEX lpbSrc, BYTE alpha, LPCSIZE lpszDst, LPCRECT lprcClipped);
    BOOL BlendSrcOver24StretchBilinearMMX(PBITMAP lpbDst, PBITMAPEX lpbSrc, BYTE alpha, LPCSIZE lpszDst, LPCRECT lprcClipped);
    BOOL BlendSrcOver32StretchBilinearMMX(PBITMAP lpbDst, PBITMAPEX lpbSrc, BYTE alpha, LPCSIZE lpszDst, LPCRECT lprcClipped);

    BOOL BlendSrcColor32MMX(PBITMAP lpbDst, xARGB x);
    BOOL BlendSrcOverColor32MMX(PBITMAP lpbDst, xARGB x);
    BOOL BlendDstOverColor32MMX(PBITMAP lpbDst, xARGB x);
    BOOL BlendMulColor32MMX(PBITMAP lpbDst, xARGB x);
    BOOL BlendOrColor32MMX(PBITMAP lpbDst, xARGB x);
    BOOL BlendGrayColor32MMX(PBITMAP lpbDst, xARGB x);

    //SSE
    BOOL BlendSrc32SSE(PBITMAP lpbDst, PBITMAPEX lpbSrc);

    BOOL BlendSrcColor32SSE(PBITMAP lpbDst, xARGB x);
    BOOL BlendOrColor32SSE(PBITMAP lpbDst, xARGB x);

    //SSE2
    BOOL BlendSrc32SSE2(PBITMAP lpbDst, PBITMAPEX lpbSrc);

    BOOL BlendSrc8StretchAreaAveragingSSE2(PBITMAP lpbDst, PBITMAPEX lpbSrc);
    BOOL BlendSrc24StretchAreaAveragingSSE2(PBITMAP lpbDst, PBITMAPEX lpbSrc);
    BOOL BlendSrc32StretchAreaAveragingSSE2(PBITMAP lpbDst, PBITMAPEX lpbSrc);

    BOOL BlendSrc8StretchAreaAveragingSSE2(PBITMAP lpbDst, PBITMAPEX lpbSrc, LPCSIZE lpszDst, LPCRECT lprcClipped);
    BOOL BlendSrc24StretchAreaAveragingSSE2(PBITMAP lpbDst, PBITMAPEX lpbSrc, LPCSIZE lpszDst, LPCRECT lprcClipped);
    BOOL BlendSrc32StretchAreaAveragingSSE2(PBITMAP lpbDst, PBITMAPEX lpbSrc, LPCSIZE lpszDst, LPCRECT lprcClipped);
}

#endif